Information processing apparatus, information processing method and storage medium

ABSTRACT

The information processing apparatus (encoding apparatus) that acquires first polygon data representing a shape of an object, acquires geometry data relating to geometry of second polygon data whose resolution is higher than that of the first polygon data, and outputs encoded data including the geometry data and topology data relating to the first polygon data.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.16/740,982, filed on Jan. 13, 2020, which claims the benefit of andpriority to Japanese Patent Application No. 2019-010058, filed Jan. 24,2019, each of which is hereby incorporated by reference herein in theirentirety.

BACKGROUND Field

The present disclosure relates to an information processing apparatus,an information processing method, and a storage medium.

Description of the Related Art

Conventionally, as a method of data representation of three-dimensionalinformation, a method that uses a surface model (mesh model) by apolygon mesh is known. However, in this method, for example, in a casewhere drawing of a polygon mesh is performed by using a web browser, orthe like, there is a possibility that drawing resources are limited.

Consequently, drawing of high-resolution mesh data is performed bytransferring and drawing low-resolution mesh data first and thentransferring additional detailed information later by applying aprogressive encoding scheme capable of stepwise decoding a polygon meshfrom a low resolution to a high resolution.

Japanese Patent Laid-Open No. 2007-265459 has disclosed a method ofrestoring an original mesh by generating a mesh simplified by repeatingprocessing to integrate two vertices of the mesh into one vertex at thetime of encoding and a tree structure that manages the procedure thereofand reversely tracking the tree structure from the simplified mesh atthe time of decoding.

However, with the method described in Japanese Patent Laid-Open No.2007-265459, in a case where the original mesh is restored, theprocessing to decode vertices one by one by sequentially tracking thetree structure is necessary, and therefore, there is such a problem thatthe decoding processing takes time. Among others, in a case where anumber of high-density meshes are drawn or the like, the decoding timelengthens.

The present disclosure has been made in view of the above-describedconventional problem and an object thereof is to reduce the processingamount relating to decoding in the progressive encoding scheme thatencodes a polygon mesh so that the resolution of the polygon mesh can bedecoded stepwise.

SUMMARY

The present disclosure is an information processing apparatus having: afirst acquisition unit configured to acquire first polygon datarepresenting a shape of an object; a second acquisition unit configuredto acquire first information indicating positions of vertices of apolygon configuring second polygon data whose resolution is higher thanthat of the first polygon data; and an output unit configured to outputthe first information and second information indicating a connectionrelationship of vertices of a polygon configuring the first polygondata.

Further features of the present disclosure will become apparent from thefollowing description of exemplary embodiments with reference to theattached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A to FIG. 1C are diagrams showing mesh data described in anexisting data description format;

FIG. 2A is a diagram showing a function configuration of an encodingunit of a progressive encoding apparatus;

FIG. 2B is a diagram showing a function configuration of a decoding unitof the progressive encoding apparatus;

FIG. 3A and FIG. 3B are each a flowchart showing an outline and aprocedure of processing performed in the encoding unit of theprogressive encoding apparatus;

FIG. 4A to FIG. 4D are diagrams showing mesh data described in aprogressive format;

FIG. 5A to FIG. 5D are diagrams showing the way a mesh changes bysplitting of a base mesh and fitting to an input mesh;

FIG. 6A is a diagram showing a change in mesh data described in theprogressive format before splitting;

FIG. 6B is a diagram showing a change in mesh data described in theprogressive format after splitting;

FIG. 7 is a diagram showing a variation in the number of elements beforeand after splitting;

FIG. 8 is a diagram showing a configuration of a file that is outputfrom a mesh output unit of the encoding unit of the progressive encodingapparatus;

FIG. 9A and FIG. 9B are each a flowchart showing an outline and aprocedure of processing performed in the decoding unit of theprogressive encoding apparatus;

FIG. 10 is a diagram showing a hardware configuration of an encodingapparatus;

FIG. 11A to FIG. 11D are diagrams showing the way a mesh changes bysplitting of a base mesh and fitting to an input mesh;

FIG. 12A is a diagram showing a function configuration of the encodingunit of the progressive encoding apparatus;

FIG. 12B is a diagram showing a function configuration of the decodingunit of the progressive encoding apparatus;

FIG. 13A to FIG. 13C are diagrams showing splitting of a triangularmesh; and

FIG. 13D to FIG. 13F are diagrams showing splitting of a rectangularmesh.

DESCRIPTION OF THE EMBODIMENTS

In the following, embodiments of the present disclosure are explainedwith reference to the drawings. The following embodiments are notintended to limit the present disclosure and all combinations offeatures explained in the present embodiments are not necessarilyindispensable to the solution of the present disclosure. In addition, avariety of aspects within the scope not deviating from the gist of thepresent disclosure are also included in the present disclosure and it isalso possible to appropriately combine part of the followingembodiments. In addition, in the following embodiments, explanation isgiven on the assumption that the apparatus configuration includes boththe functions of the encoding unit and the decoding unit, but aconfiguration may be accepted that has only one of the functions of theencoding unit and the decoding unit.

First Embodiment

First, before explaining the present embodiment, an existing mesh datadescription method is explained by using FIG. 1A to FIG. 1C for acomparison with a mesh data description method (data description format)used in the present embodiment. FIG. 1A to FIG. 1C are diagrams showingmesh data described in the existing data description format.

FIG. 1A shows a mesh including a triangle T0 configured by a vertex V0,a vertex V2, and a vertex V3 and a triangle T1 configured by the vertexV0, the vertex V3, and a vertex V1. The mesh such as this is defined bydescribing the vertex coordinates of each vertex shown in FIG. 1B and areference to the vertices configuring each triangle shown in FIG. 1C.

The reference to the vertices indicates (describes) the order (index) ofthe vertices on the data, but the connection relationship between eachelement only needs to be indicated by a method capable of accessing thevertex coordinates and in addition, there is case where the connectionrelationship is described by an address on a memory. Further, theinformation representing a position in a three-dimensional space asshown in FIG. 1B is referred to as geometry and the informationrepresenting the connection relationship between each element as shownin FIG. 1C is referred to as topology. In addition, in the following,the above-described data description format is referred to as anexisting data description format.

Next, as the information processing apparatus (encoding apparatus)according to the present embodiment, a progressive encoding apparatuscapable of decoding a mesh at a high speed is explained and in additionthereto, the data description format of a mesh generated by theprogressive encoding apparatus is explained.

FIG. 2A and FIG. 2B are diagrams showing the function configuration ofthe progressive encoding apparatus. FIG. 2A shows the encoding unit andFIG. 2B shows the decoding unit. In the following, explanation is givenin order. The encoding unit shown in FIG. 2A performs progressiveencoding for the mesh represented in the existing data descriptionformat shown in FIG. 1B and FIG. 1C described above so that it ispossible to control resolution stepwise. The progressive encoding in thepresent embodiment is an encoding scheme of performing encoding so thata three-dimensional mesh model of a polygon mesh can be decoded with aplurality of resolutions (densities) (so that decoding is possible byselecting one of the plurality of resolutions (each resolution)). Thatis, the encoding apparatus in the present embodiment functions as aninformation processing apparatus that outputs encoded data (progressivemesh data) capable of decoding a polygon mesh with a plurality ofresolutions.

As shown in FIG. 2A, the encoding unit comprises a mesh input unit 201,a mesh simplification unit 202, a topology conversion unit 203, a meshsplitting unit 204, and a mesh output unit 207. Further, the meshsplitting unit 204 has a topology splitting unit 205 and a geometrycalculation unit 206.

The mesh input unit 201 receives (acquires) mesh data representing apolygon mesh described in the existing data description format(specifically, the data description format shown in FIG. 1B and FIG. 1C)and inputs the mesh data into the progressive encoding apparatus. Themesh simplification unit 202 simplifies the mesh of the input mesh data.In the following, this simplified mesh is referred to as a base mesh.

The topology conversion unit 203 converts the base mesh into aprogressive representation. The progressive representation will bedescribed later by using FIG. 4A to FIG. 4D. The mesh splitting unit 204repeatedly performs splitting of the topology of the base mesh convertedinto a progressive representation and fitting to the mesh (hereinafter,referred to as input mesh) to which vertex coordinates are input. Due tothis, the mesh splitting unit 204 generates a mesh in the finalhierarchy (hereinafter, referred to as full mesh). The mesh output unit207 outputs the topology of the base mesh of the progressiverepresentation generated in the topology conversion unit 203 and thegeometry of the full mesh generated by in mesh splitting unit 204 as aprogressively represented mesh. In the following, the mesh dataprogressively represented, which is output by the mesh output unit 207is referred to as progressive mesh data.

Next, the outline and the procedure of processing performed in theencoding unit of the progressive encoding apparatus shown in FIG. 2A areexplained by using the flowchart in FIG. 3A. It is assumed that symbol“S” in explanation of the flowchart represents a step. Further, it isassumed that this point is also true in explanation of subsequentflowcharts.

At S301, the mesh input unit 201 inputs mesh data into the progressiveencoding apparatus. At S302, the mesh simplification unit 202 simplifiesa mesh in the input mesh data and approximately represents a mesh in theinput mesh data by a mesh whose number of faces is smaller (that is,base mesh). For simplification of a mesh, in the present embodiment, themethod disclosed in Japanese Patent Laid-Open No. 2007-265459 describedabove is used, but the method is not necessarily limited to this methodand any method may be used as long as the method is capable of reducingthe number of faces in a state where the structure of the shape is kept.As another method of simplifying a mesh, it is also possible to use amethod in which an error (quadric error metrics) in a case where thestructure of the faces around an edge indicating a connectionrelationship between vertices on a mesh is represented by a 4×4 matrixand in a case where a vertex is lost is calculated and an edge thatminimizes the error is selected, and vertices are deleted one by one byintegrating the vertices at both edge ends. Further, it may also bepossible to simplify a mesh by representing the mesh by Graph Laplacian(sparse matrix representing topology) and converting the mesh into adegenerate matrix.

At S303, the topology conversion unit 203 converts the base mesh into aprogressive representation. Here, the number of levels of resolution atthe time of conversion into a progressive representation is referred toas PD (Progressive Depth). For example, in a case where PD=3, splittingis performed twice from the base mesh and between the base mesh in thefirst hierarchy and the full mesh in the third hierarchy, anintermediate mesh in the second hierarchy exists. The resolution of theintermediate mesh is higher than that of the base mesh and theresolution of the full mesh is higher than that of the intermediatemesh.

At S304, the topology splitting unit 205 performs a regular splitting ofthe mesh. The regular splitting of the mesh will be described later byusing FIG. 5A to FIG. 5D. Further, in the regular splitting, only thenumber of faces and the number of vertices increase, but the shape doesnot change, and therefore, at S305, the geometry calculation unit 206performs positioning so that the vertex coordinates become close to theinput mesh. Here, the vertex of the input mesh, which is closer to thevertex for which positioning is performed, is searched for and thecoordinates of the vertex for which the positioning is performed arecaused to coincide with the coordinates of the vertex that is searchedfor. In addition, it may also be possible to perform positioning asenergy minimization problem of minimizing the difference from the inputmesh and the method is arbitrary.

Here, as a supplement, the way the mesh changes by the series ofprocessing at S302 to S305 is explained by using FIG. 5A to FIG. 5D.FIG. 5A is an input mesh, an ideal shape that is desired to berepresented, and it is assumed that the input mesh is formed by a numberof minute triangles, not shown schematically. By simplifying the mesh atS302 by taking the mesh shown in FIG. 5A as the input mesh, the mesh isapproximately represented by two triangles as shown in FIG. 5B. Then, byperforming the regular splitting of the mesh at S304, each triangle isdivided into four triangles as shown in FIG. 5C. Lastly, by performingpositioning of the vertices at S305, the shape of the mesh is caused tobecome close to the input mesh as shown in FIG. 5D.

At S306, the mesh splitting unit 204 determines whether or not theprocessing at S304 and S305 described above has been performedrepeatedly PD-1 times. It is possible for the mesh splitting unit 204 togenerate a progressively represented mesh (that is, full mesh) whosenumber of levels of resolution is PD by performing the processing atS304 and S305 described above PD-1 times (Yes at S306). The progressivemesh data that is output by the mesh output unit 207 at S307 includes atleast topology data relating to the topology of the base mesh andgeometry data relating to the geometry of the full mesh.

Next, the data description format of a progressively represented mesh isexplained by using FIG. 4A to FIG. 4D. FIG. 4A shows the outline of thedata description format of a mesh and the mesh data is configured so asto include vertices indicated by V (V₀, V₁, V₂, V₃), edges indicated byE (E₀, E₁, E₂, E₃, E₄), and triangles indicated by T (T₀, T₁). FIG. 4Bdescribes vertex coordinates, the same as in FIG. 1B.

FIG. 4C describes edges indicating a connection relationship betweenvertices on the mesh and here, describes a reference to the vertices atboth edge ends. Further, FIG. 4C describes the reference to the verticesin the order from the vertex whose priority is low (whose number issmall) among the priorities (numbers) of the vertices shown in FIG. 4B(that is, the vertex whose priority is low is described early). It mayalso be possible to describe the reference to the vertexes in the orderfrom the vertex whose priority is high (whose number is large).

FIG. 4D describes the mesh of the triangle, which is the constituentunit of the mesh, and here, describes a reference to three edgesconfiguring the triangle. The reference to the edges is described in theorder of, by taking the vertex whose priority is the lowest among thepriorities of the vertexes configuring the triangle as the base point,the edge to the right of the direction toward the opposite side, theedge to the left, and the edge on the opposite side. As a supplement,this order is only required to be capable of uniquely representing thesurface direction of the triangle by the edge description order and theedges may be described in another order, such as the reverse order andthe shifted order. Hereinafter, this data description format is referredto as the progressive format.

Next, the configuration of the file that is output from the mesh outputunit 207 of the encoding unit of the progressive encoding apparatus isexplained by using FIG. 8 . As shown in FIG. 8 , the file that is outputincludes a header area, a base mesh area, and a subband mesh area. Inthe header area, the number of levels of resolution (progressive_depth),the number of vertices of the mesh in each hierarchy (num_vertices), thenumber of edges (num_edges), and the number of triangles (num_triangles)are described.

In the base mesh area, the edges edges, the triangles triangles, and thevertex coordinates coords of the base mesh are described. In the subbandmesh area, additional detailed information that is necessary in thehierarchy whose resolution is higher than that of the base mesh isdescribed and here, the vertex coordinates coords of the vertices newlygenerated by the splitting processing from the hierarchy whoseresolution is low in each hierarchy are described. That is, note thatthe number of vertices described in the header area and the number ofvertices described in the subband mesh area are different in the samehierarchy.

Following the above, by using the flowchart in FIG. 3B, the regularsplitting processing of the progressive mesh described above isexplained. Here, it is assumed that the number of vertices of the meshbefore splitting (division) is NV, the number of edges is NE, the numberof triangles is NT, and in the following, the reference number of eachelement is indicated by (n). As for the vertex, the vertex afterdivision also makes use of the vertex before division, and therefore,the reference number is maintained before and after division, but as forthe edge and the triangle, an independent (unique) reference number isassigned before and after division. FIG. 6A and FIG. 6B show a change inmesh data described in the progressive format before and after splitting(that is, a relationship between the reference numbers of the vertex V,the edge E, and the triangle T) and FIG. 7 shows the variation in eachnumber of elements before and after splitting.

At S308, the topology splitting unit 205 takes the edge on whichattention is focused as, for example, Ed and generates a new vertexV_(Nv+d), which is the average coordinates of two vertices (V_(a),V_(b)) at both ends of the edge Ed. At S309, the topology splitting unit205 generates edges E_(2d) and E_(2d+1) as new edges, which connect thenew vertex generated by division and each of the two vertices at bothends thereof. At S310, the topology splitting unit 205 determineswhether or not the splitting processing has been performed for all theedges.

As described above, at S308 to S310, the topology splitting unit 205performs the division processing by focusing attention on the edgesbefore division one by one in order. Further, to supplement this byusing FIG. 13A to FIG. 13C, the relationship will be as that shown inFIG. 13A and FIG. 13B. That is, the topology splitting unit 205generates new vertices V_(NV+0), V_(NV+1), and V_(NV+2) from an edge E₀,an edge E₁, and an edge E₂ and further generates new edges E₂₀ andE₂₀₊₁, new edges E₂₁ and E₂₁₊₁, and new edges E₂₂ and E₂₂₊₁.

At S311, the topology splitting unit 205 connects three new verticesV_(NV+d), V_(NV+e), and V_(NV+f) to one another, which are generated bydividing edges Ed, Ee, and Ef configuring a triangle Tg. By doing so,the topology splitting unit 205 generates three new edges E_(2NE+3g),E_(2NE+3g+1), and E_(2NE+3g+2). At S312, the topology splitting unit 205generates (defines) four new triangles T_(4g) to T_(4g+3) configured bynine new edges E_(2d), E_(2d+1), E_(2e), E_(2e+1), E_(1f), E_(2f+1), andE_(2NE+3g) to E_(2NE+3g+2), which are generated by dividing the triangleTg. At S313, the topology splitting unit 205 determines whether or notthe division processing has been performed for all the triangles.

As described above, at S311 to S313, new edges are generated andfurther, new triangles are defined (generated). Further, to supplementthis by using FIG. 13A to FIG. 13C, as indicated by the relationship inFIG. 13B and FIG. 13C, by connecting the new vertices V_(NV+0),V_(NV+1), and V_(NV+2) to one another, which are generated in FIG. 13B,as shown in FIG. 13C, four new triangles are generated (defined). Due tothis, topology (that is, information representing the connectionrelationship between each element) is generated.

In addition, FIG. 7 shows the variation in the number of elements of thevertex, the edge, and the triangle before and after splitting. In FIG. 7, the new vertex generated at S308 is described in an area indicated bysymbol 701, the new edges generated at S309 are described in an areaindicated by symbol 702, the new edges generated at S311 are describedin an area indicated by symbol 703, and the new triangles generated atS312 are described in an area indicated by symbol 704.

Next, the decoding unit shown in FIG. 2B is explained. The decoding unitdecodes the progressive mesh data generated by the encoding unit in FIG.2A and acquires a mesh with a desired resolution (mesh in a sethierarchy). For example, in a case of specifying the mesh in the secondhierarchy as the number of levels of resolution for the progressive meshdata generated with PD (number of levels of resolution)=3, the decodingunit acquires a mesh having the number of faces four times that of thebase mesh. In the present embodiment, the specifications are such thatonly the mesh in the hierarchy set at the time of decoding is output,but it may also be possible to output the topology in all thehierarchies acquired during the decoding process.

As shown in FIG. 2B, the decoding unit comprises a mesh input unit 208,a topology storage unit 209, a topology splitting unit 210, a geometrystorage unit 211, a geometry acquisition unit 212, a mesh restorationunit 213, and a mesh output unit 214.

The mesh input unit 208 inputs the progressive mesh data into theprogressive encoding apparatus, stores (sets) the topology in (to) thetopology storage unit 209, and stores the vertex coordinate informationin the geometry storage unit 211.

The topology splitting unit 210 segments the topology stored in thetopology storage unit 209 and generates topology of the mesh in the sethierarchy. The geometry acquisition unit 212 acquires a portion (vertexcoordinate data) necessary for the set hierarchy among the vertexcoordinates stored in the geometry storage unit 211.

The mesh restoration unit 213 acquires a representation of the mesh inthe set hierarchy along with the vertex coordinate data acquired fromthe geometry acquisition unit 212 as well as acquiring the topology inthe existing data description format by converting the topology of thesegmented mesh. The mesh output unit 214 outputs the generated mesh.

Next, the outline and the procedure of the processing performed in thedecoding unit of the progressive encoding apparatus shown in FIG. 2B areexplained by using the flowchart in FIG. 9A. At S901, the mesh inputunit 208 inputs progressive mesh data into the progressive encodingapparatus.

At S902, the topology splitting unit 210 performs the regular splittingof the base mesh. At S903, the topology splitting unit 210 determineswhether or not the regular splitting at S902 has been performed N−1times in a case where a mesh whose number of levels of resolution is Nhierarchies is acquired.

At S904, the mesh restoration unit 213 converts the progressivelyrepresented triangle into mesh data in the existing mesh representation(that is, mesh data in the existing data description format). In thiscase, by following the data description format in FIG. 4B to FIG. 4Ddescribed above (that is, the description order of reference to edges inthe triangle, the description order of reference to vertices on theedge), it is possible to obtain the vertex without erroneously confusingthe surface of the mesh with the backside. Specifically, for example, itis sufficient to take out the vertex described firstly on the edgedescribed firstly, the vertex described secondly on the edge describedfirstly, and the vertex described secondly on the edge describedsecondly. At S905, the mesh output unit 214 outputs the generated mesh.

Following the above, by using the flowchart in FIG. 9B, the topologyregular splitting processing of a base mesh, which is performed at S902,is explained. In FIG. 9B, the point changed from FIG. 3B described aboveis that S308 in FIG. 3B is not performed (that is, in FIG. 9B,calculation of vertex coordinates is not performed but input vertexcoordinate information is made use of).

With the configuration described above, by managing the topology of amesh by the edge, the generation rule of the topology that is generatedin the high hierarchy is simplified, and therefore, it is possible toimplement progressive encoding of a three-dimensional mesh that can bedecoded at a high speed. It is also possible to similarly apply thecontents explained in the present embodiment to a two-dimensional mesh.

FIG. 10 is a diagram showing the hardware configuration of the encodingapparatus. The encoding apparatus according to the present embodimentcomprises a CPU 1001, a RAM 1002, a ROM 1003, a keyboard 1004, a mouse1005, a display device 1006, an external storage device 1007, a storagemedium drive 1008, and an I/F 1009.

The CPU (Central Processing Unit) 1001 performs control of the entirecomputer by using computer programs or data stored in the RAM 1002 orthe ROM 1003. Further, the CPU 1001 performs each piece of processingdescribed above, which is explained on the assumption that theprocessing is performed by the encoding apparatus. The RAM (RandomAccess Memory) 1002 is an example of the computer readable storagemedium. The RAM 1002 comprises a storage area for temporarily storingcomputer programs or data loaded from the external storage device 1007,the storage medium drive 1008, or the network I/F (interface) 1009.Further, the RAM 1002 comprises a work area used by the CPU 1001 in acase where the CPU 1001 performs various kinds of processing. That is,it is possible for the RAM 1002 to appropriately provide various areas.The ROM (Read Only Memory) 1003 is an example of the computer readablestorage medium and stores, for example, setting data of the computer, aboot program, and the like.

The CPU 1001 of the encoding apparatus according to the presentembodiment implements part of the functions of the blocks shown in FIG.2A and FIG. 2B. That is, the CPU 1001 implements the functions of themesh simplification unit 202, the topology conversion unit 203, the meshsplitting unit 204, the topology splitting unit 210, the geometryacquisition unit 212, and the mesh restoration unit 213 as part of theblocks shown in FIG. 2A and FIG. 2B. Further, it is possible to mountpart of the blocks shown in FIG. 2A and FIG. 2B described above assoftware (computer programs) executed by the CPU 1001 by the CPU 1001executing programs loaded onto the RAM 1002. In this case, the softwareis installed in the RAM 1002 of a computer, such as a PC (PersonalComputer). Then, by the CPU 1001 of the computer executing the installedsoftware, the computer implements the functions of the encodingapparatus described above.

It may also be possible to comprise one piece or a plurality of piecesof dedicated hardware different from the CPU 1001 or a GPU (GraphicsProcessing Unit) and for the dedicated hardware or the GPU to perform atleast part of the processing by the CPU 1001. As the dedicated hardware,for example, there are an ASIC (Application Specific IntegratedCircuit), an FPGA (Field-Programmable Gate Array), a DSP (Digital SignalProcessor), and the like. In addition, as a supplement, the topologystorage unit 209 and the geometry storage unit 211 in FIG. 2B correspondto, for example, the RAM 1002, the external storage device 1007, and thelike.

The keyboard 1004 and the mouse 1005 are operated by an operator of thecomputer and by using those, it is possible to input variousinstructions and data to the CPU 1001. The display device 1006 isconfigured by a CRT, a liquid crystal screen, or the like and capable ofdisplaying processing results by the CPU 1001 by images, characters, andthe like.

The external storage device 1007 is an example of the computer readablestorage medium and a large-capacity information storage devicerepresented by the hard disk drive device. In the external storageapparatus 1007, for example, the OS (Operating System), computerprograms and data for causing the CPU 1001 to implement each piece ofprocessing shown in FIG. 3A and FIG. 3B, the various tables describedabove, the database, and the like are stored. The computer programs anddata stored in the external storage device 1007 are appropriately loadedonto the RAM 1002 in accordance with the control by the CPU 1001.

The storage medium drive 1008 reads computer programs and data stored inthe storage medium, such as CD-ROM and DVD-ROM, and outputs the readcomputer programs and data to the RAM 1002 and the external storagedevice 1007. It may also be possible to store part or all of theinformation explained as being stored in the external storage device1007 in the storage device described above, such as CD-ROM and DVD-ROM,and cause the storage medium drive 1008 to read the information.

The network I/F 1009 is an interface for inputting the vertex index andthe like from the external device, outputting encoded data to theexternal device, and so on, and is, for example, USB (Universal SerialBus). A bus 1010 is a bus that connects each unit within the progressiveencoding apparatus.

In the hardware configuration as described above, in a case where thepower source of the computer is turned on, the CPU 1001 loads the OSonto the RAM 1002 from the external storage device 1007 in accordancewith the boot program stored in the ROM 1003. As a result of this, it ismade possible to perform the input operation via the keyboard 1004 andthe mouse 1005 and further, it is made possible to display GUI(Graphical User Interface) on the display device 1006. Furthermore, in acase where a user operates the mouse 1005 or the like and givesinstructions to activate the texture mapping application stored in theexternal storage device 1007, the CPU 1001 loads the texture mappingapplication onto the RAM 1002 and performs various kinds of processing.Due to this, the above-described computer functions as the encodingapparatus.

The progressive encoding application program executed by the CPU 1001comprises functions corresponding to the mesh simplification unit 202,the mesh splitting unit 204, the topology splitting unit 210, and themesh restoration unit 213. Further, the processing results here aresaved in the external storage device 1007. As above, it is possible toapply the above-described computer to the encoding apparatus accordingto the present embodiment.

In the above-described embodiment, the method is explained in whichbased on the simplified base mesh, mesh data having a resolution higherthan that of the base mesh is generated and then geometry data of thefull mesh is generated, but the method is not limited to this. That is,for example, it may also be possible to acquire first the geometry dataof the mesh data that is input and gradually reduce the resolution ofthe mesh data that is input and then generate the topology data of themesh data (base mesh) whose resolution is lower than that of the inputmesh data. In this case, it is sufficient to share information on whichvertex the full mesh refers to and how to create the interpolated vertexwith the progressive encoding apparatus. It may also be possible totransmit the information such as this from the progressive encodingapparatus to the progressive decoding apparatus or for the progressivedecoding apparatus to save in advance the information.

Second Embodiment

In the above-described first embodiment, the example is explained inwhich the edge data is embedded within the data structure in a case ofhigh-speed decoding. However, in the first embodiment, although it ispossible to decode a mesh at a high speed, the number of edges is aboutthree times the number of vertices and the number of elements is large,and therefore, there is a tendency for the data amount to become largeas a result.

Consequently, in the present embodiment, a method is explained in whichprogressive encoding is implemented without embedding edge data withinthe data structure of the data to be output for the purpose of reducingthe data amount. As for the encoding apparatus according to the presentembodiment, it may also be possible to implement the function of eachblock, to be described later, by programs configured by a function grouphaving the function of each block, like the encoding apparatus shown inFIG. 2A and FIG. 2B described above. Further, in the above-describedfirst embodiment, the triangle mesh is explained as an example as theconstituent unit of the mesh, but in the present embodiment, arectangular mesh is explained as an example.

FIG. 12A and FIG. 12B are diagrams showing the function configuration ofthe progressive encoding apparatus. FIG. 12A shows the encoding unit andFIG. 12B shows the decoding unit. As shown in FIG. 12A, the encodingunit comprises a mesh input unit 1201, a mesh simplification unit 1202,a topology conversion unit 1203, a mesh splitting unit 1204, and a meshoutput unit 1207. Further, the mesh splitting unit 1204 has a topologysplitting unit 1205 and a geometry calculation unit 1206. Furthermore,as shown in FIG. 12B, the decoding unit comprises the following units.That is, a mesh input unit 1208, a topology storage unit 1209, atopology conversion unit 1210, a topology splitting unit 1211, ageometry storage unit 1212, a geometry acquisition unit 1213, a meshrestoration unit 1214, and a mesh output unit 1215.

In the following, explanation of the contents in common to those of thefirst embodiment is omitted and explanation is given by focusingattention mainly on portions different from the first embodiment. Themesh simplification unit 1202 of the encoding unit simplifies the meshof the input mesh data and outputs the topology of the base mesh in theexisting data description format, which is obtained thereby, to the meshoutput unit 1207 as in the first embodiment. The mesh output unit 1207outputs the topology of the base mesh in the general data descriptionformat, not the topology of the mesh represented progressively.

The mesh input unit 1208 of the decoding unit receives the base mesh inthe existing data description format from the mesh output unit 1207 ofthe encoding unit. The mesh input unit 1208 stores the topology of thereceived base mesh in the topology storage unit 1209 and stores thegeometry of the base mesh in the geometry storage unit 1212.

The topology conversion unit 1210 converts the topology of the base meshinto a progressive representation. Here, it is assumed that theinput/output in the topology conversion unit 1210 coincide with theinput/output in the topology conversion unit 1203. That is, in thismanner, the base mesh is converted into a progressive representation inthe decoding unit. After that, the topology splitting unit 1211 segmentsthe topology of the base mesh converted into a progressiverepresentation in the topology conversion unit 1210 and generates thetopology of the mesh in the set hierarchy.

Further, in the present embodiment, as described above, the rectangularmesh is handled as the constituent unit of the mesh, and therefore, theprocess of mesh splitting is basically the same as that in FIG. 5A toFIG. 5D, but as shown in FIG. 11A to FIG. 11D, the topology is differentfrom that in FIG. 5A to FIG. 5D. Specifically, different from thetriangular mesh, in the rectangular mesh, the edges in FIG. 13D aredivided into those as in FIG. 13E, which is the same as in the firstembodiment, but different in that a new vertex is generated inside therectangle as shown in FIG. 13F.

As above, in the present embodiment, the configuration is explained inwhich the topology of the base mesh in the existing data descriptionformat is output and progressive encoding is implemented. By thisconfiguration, it is possible for the encoding apparatus according tothe present embodiment to reduce the data amount necessary for topologycompared to that of the encoding apparatus according to the firstembodiment.

OTHER EMBODIMENTS

Embodiment(s) of the present disclosure can also be realized by acomputer of a system or apparatus that reads out and executes computerexecutable instructions (e.g., one or more programs) recorded on astorage medium (which may also be referred to more fully as a‘non-transitory computer-readable storage medium’) to perform thefunctions of one or more of the above-described embodiment(s) and/orthat includes one or more circuits (e.g., application specificintegrated circuit (ASIC)) for performing the functions of one or moreof the above-described embodiment(s), and by a method performed by thecomputer of the system or apparatus by, for example, reading out andexecuting the computer executable instructions from the storage mediumto perform the functions of one or more of the above-describedembodiment(s) and/or controlling the one or more circuits to perform thefunctions of one or more of the above-described embodiment(s). Thecomputer may comprise one or more processors (e.g., central processingunit (CPU), micro processing unit (MPU)) and may include a network ofseparate computers or separate processors to read out and execute thecomputer executable instructions. The computer executable instructionsmay be provided to the computer, for example, from a network or thestorage medium. The storage medium may include, for example, one or moreof a hard disk, a random-access memory (RAM), a read only memory (ROM),a storage of distributed computing systems, an optical disk (such as acompact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD)™),a flash memory device, a memory card, and the like.

According to the present disclosure, it is possible to reduce theprocessing amount relating to decoding in a progressive encoding schemethat performs encoding so that the resolution of a polygon mesh can bedecoded stepwise.

While the present disclosure has been described with reference toexemplary embodiments, it is to be understood that the disclosure is notlimited to the disclosed exemplary embodiments. The scope of thefollowing claims is to be accorded the broadest interpretation so as toencompass all such modifications and equivalent structures andfunctions.

This application claims the benefit of Japanese Patent Application No.2019-010058, filed Jan. 24, 2019, which is hereby incorporated byreference wherein in its entirety.

1.-15. (canceled)
 16. An information processing apparatus comprising:one or more memories storing instructions; and one or more processorsconfigured to execute the instructions to cause the informationprocessing apparatus to perform operations including: obtaining firstmesh data representing a shape of an object and information forgenerating a second mesh data representing a shape of the object, andgenerating the second mesh data based on the obtained first mesh dataand the obtained information for generating the second mesh data. 17.The information processing apparatus according to claim 16, wherein thesecond mesh data is generated by dividing each edge of a polygon formingthe obtained first mesh data and the obtained information for generatingthe second mesh data.
 18. The information processing apparatus accordingto claim 16, wherein the obtained information for generating the secondmesh data is information for specifying positions of vertices of apolygon forming the second mesh data.
 19. The information processingapparatus according to claim 16, wherein the obtained information forgenerating the second mesh data is information representing positions ofvertices of a polygon forming the second mesh data.
 20. The informationprocessing apparatus according to claim 16, wherein the obtainedinformation for generating the second mesh data includes the number ofpositions of vertices of a polygon forming the second mesh data.
 21. Theinformation processing apparatus according to claim 16, wherein thenumber of polygons forming the second mesh is greater than the number ofpolygons forming the first mesh data.
 22. An information processingmethod executed by an information processing apparatus, the methodcomprising: obtaining first mesh data representing a shape of an objectand information for generating a second mesh data representing a shapeof the object; and generating the second mesh data based on the obtainedfirst mesh data and the obtained information for generating the secondmesh data.
 23. A non-transitory computer-readable storage medium thatstores a program for causing an information processing apparatus to:obtain first mesh data representing a shape of an object and informationfor generating a second mesh data representing a shape of the object;and generate the second mesh data based on the obtained first mesh dataand the obtained information for generating the second mesh data.